package poo.recursion;

import java.util.Scanner;

public class Ricorsivi {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String s = sc.nextLine();
		System.out.println(palindromaRicorsiva(s, 0));
		System.out.println(palindromaRicorsiva(s));

	}

	public static int potenza(int a, int n) {
		if (n == 0)
			return 1;
		return a * potenza(a, n - 1);
	}

	public static int potenzaIte(int a, int n) {// potenza itertativa
		assert n >= 0 : "Esponente negativo";
		int p = 1;
		for (int i = 0; i < n; i++)
			p = p * a;
		return p;

	}

	public int fattorialeRicorsivo(int n) {
		if (n <= 1)
			return 1;

		return n * fattorialeRicorsivo(n - 1);
	}

	public static boolean palindromaRicorsiva(String s) {
		if (s.length() <= 1)
			return true;
		if (s.charAt(0) != s.charAt(s.length() - 1))
			return false;
		return palindromaRicorsiva(s.substring(1, s.length() - 1));

	}

	public static boolean palindromaRicorsiva(String s, int n) {
		if (n >= s.length() / 2)
			return true;
		if (s.charAt(n) != s.charAt(s.length() - n - 1))
			return false;
		return palindromaRicorsiva(s, n + 1);

	}

	public boolean palindromaIte(String s) {
		int i = 0;
		int j = s.length() - 1;
		while (i < j) {
			if (s.charAt(i) != s.charAt(j))
				return false;
			i++;
			j--;

		}
		return true;

	}

	public int max(int a[], int inf, int sup) {

		if (inf == sup)
			return a[inf];
		int med = (inf + sup) / 2;
		int m1 = max(a, inf, med);
		int m2 = max(a, inf, med);
		return (m1 > m2) ? m1 : m2;

	}

	public static int mcd(int x, int y) {
		if (x <= 0 || y <= 0)
			throw new IllegalArgumentException();
		return mcd_euclide(x, y);

	}

	private static int mcd_euclide(int x, int y) {
		if (y == 0)
			return x;

		return mcd_euclide(y, x % y);
	}
}
